package gatperdut.chato.core.messaging.replies;

import gatperdut.chato.core.ChatoServer;
import gatperdut.chato.core.item.ItemController;
import gatperdut.chato.core.messaging.grammar.messinfo.UpdateItemsInfo;
import gatperdut.chato.core.messaging.packagers.ItemsPackager.ItemJSONAttr;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

public class UpdateItemsReply extends Reply {

    public UpdateItemsReply( UpdateItemsInfo updateItemsInfo, ChatoServer chatoServer ) {
        super( updateItemsInfo, chatoServer );
    }

    @Override
    public String send() {
        JSONArray itemsData = getMessageInfo().getItemsData();

        JSONObject itemData;
        ItemController itemController;
        for ( int i = 0; i < itemsData.size(); i++ ) {
            itemData = (JSONObject) itemsData.get( i );

            itemController = getChatoServer().getItemHandler().getItemCDOIDToController().get( itemData.get( ItemJSONAttr.ID.getName() ) );
            itemController.getItem().setShortDesc( (String) itemData.get( ItemJSONAttr.SHORT_DESC.getName() ) );
            itemController.getItem().setLongDesc( (String) itemData.get( ItemJSONAttr.LONG_DESC.getName() ) );
        }

        getChatoServer().getDatasource().save();

        JSONObject toSend = new JSONObject();
        toSend.put( "status", "ok" );
        return toSend.toJSONString();
    }

    @Override
    public UpdateItemsInfo getMessageInfo() {
        return (UpdateItemsInfo) super.getMessageInfo();
    }
}
